home *** CD-ROM | disk | FTP | other *** search
/ Aminet 19 / Aminet 19 (1997)(GTI - Schatztruhe)[!][Jun 1997].iso / Aminet / mods / misc / CUST_HangOn.lha / SuperHangOn / SuperHangOn_Main.s < prev    next >
Text File  |  1997-03-31  |  13KB  |  698 lines

  1. *************************************************
  2. * Super Hang On Main by The Source (1988).    *
  3. * Adapted by Mr.STYCKX / Nicolas Pomarède    *
  4. *                        *
  5. * Original replay was in $1b1c.            *
  6. * Replay Speed : 200 Hz ( Timer=$dfc )        *
  7. *                        *
  8. * EaglePlayer / Delitracker port : 29/03/97    *
  9. *    Volume                    *
  10. *    Balance                    *
  11. *    SubSong                    *
  12. *    SongEnd                    *
  13. *    EP_Voices                *
  14. *    EP_StructInit (Analyzer)        *
  15. * Songs:    1    Menu            *
  16. *        2    Game Over        *
  17. *        3    Finish            *
  18. *        4    Outride A Crisis    *
  19. *        5    Sprinter        *
  20. *        6    Winning Run        *
  21. *        7    Hard Road        *
  22. * Uses Voices A, B, C                *
  23. *                        *    
  24. *************************************************
  25.  
  26.     opt    o+
  27.  
  28.     output    ram:CUST.SuperHangOn_Main
  29.  
  30.  
  31. SHO_CIA        =    $dfc        ; 200 Hz
  32.  
  33. SHO_TEST    =        0    ; 0 => BUILD COMPLETE CUSTOM MODULE
  34.                     ; 1 => BUILD SMALL CODE FOR TESTING
  35.  
  36.     section    SHO,code
  37.  
  38.  
  39.  
  40.     incdir    "Include:"    include    "misc/DeliPlayer.i"
  41.     include    "misc/EaglePlayer.i"
  42.  
  43.  
  44.     IFEQ    SHO_TEST-0            ; COMPLETE VERSION
  45.  
  46.  
  47.     PLAYERHEADER PlayerTagArray
  48.  
  49.     dc.b '$VER: Super Hang On Main Musics (1988) custom player V1.0, '
  50.     dc.b 'ripped and adapted by Mr.STYCKX (03/97)',0
  51.  
  52.     EVEN
  53.  
  54. PlayerTagArray
  55.     dc.l    DTP_CustomPlayer,1        ; CustomPlayer - Tag (important !!!)
  56.     dc.l    DTP_Flags,PLYF_CUSTOM!PLYF_SONGEND
  57.  
  58.     dc.l    DTP_PlayerVersion,1<<16+0    ; v1.0
  59.     dc.l    EP_PlayerVersion,1
  60.     dc.l    DTP_PlayerName,PName
  61.     dc.l    DTP_Creator,CName
  62.  
  63.     dc.l    DTP_InitPlayer,InitPlay        ; alloc audio
  64.     dc.l    DTP_EndPlayer,EndPlay        ; free audio
  65.     dc.l    DTP_InitSound,SHO_init        ; init custom data
  66.     dc.l    DTP_EndSound,SHO_end        ; clear DMA
  67.  
  68.     dc.l    DTP_SubSongRange,SHO_SubSongRange
  69.  
  70.     dc.l    DTP_Interrupt,SHO_Play
  71.  
  72.     dc.l    DTP_Volume,SHO_Volume
  73.     dc.l    DTP_Balance,SHO_Volume
  74.  
  75.     dc.l    EP_Voices,SHO_SetVoices
  76.     dc.l    EP_StructInit,SHO_StructInit
  77.  
  78.     dc.l    EP_Flags,EPB_Voices!EPB_Analyzer!EPB_Volume!EPB_Balance!EPB_Songend
  79.  
  80.     dc.l    TAG_DONE
  81.  
  82.  
  83. PName    dc.b    "Super Hang On Main Custom v1.0",0
  84. CName    dc.b    "Music by The Source (1988).",$a
  85.     dc.b    "Adapted by Mr.STYCKX (30/03/97)",0
  86.  
  87.     EVEN
  88.  
  89.  
  90. SHO_StructAnalyzer            ; transmis à EaglePlayer pour gérer
  91.     ds.l    UPS_SizeOF        ; les analyzers
  92.  
  93.  
  94.  
  95. *-----------------------------------------------------------------------*
  96. ;
  97. ; Init Player
  98.  
  99. InitPlay
  100.     move.l    dtg_SongEnd(a5),SHO_SongEnd
  101.  
  102.     move.l    dtg_AudioAlloc(a5),a0        ; Function
  103.     jmp    (a0)
  104.  
  105.  
  106. *-----------------------------------------------------------------------*
  107. ;
  108. ; End Player
  109.  
  110. EndPlay
  111.     move.l    dtg_AudioFree(a5),a0        ; Function
  112.     jmp    (a0)
  113.  
  114.  
  115. *-----------------------------------------------------------------------*
  116. ;
  117. ; Init Custom Replay Routine
  118.  
  119. SHO_init
  120.     move.w    #SHO_CIA,dtg_Timer(a5)
  121.     move.l    dtg_SetTimer(a5),a0
  122.     jsr    (a0)
  123.     move.w    dtg_SndNum(a5),d0    ; sub song nbr (1..7)
  124.     bra    SHO_InitSong
  125.  
  126.     move.w    #SHO_CIA,dtg_Timer(a5)
  127.     move.l    dtg_SetTimer(a5),a0
  128.     jmp    (a0)
  129.  
  130.  
  131.  
  132. *-----------------------------------------------------------------------*
  133. ;
  134. ; Clear Audio Reg.
  135.  
  136. SHO_end
  137.     move.w    #$f,$dff096
  138.     clr.w    $dff0a8
  139.     clr.w    $dff0b8
  140.     clr.w    $dff0c8
  141.     clr.w    $dff0d8
  142.     rts
  143.  
  144.  
  145.  
  146. *-----------------------------------------------------------------------*
  147. ;
  148. ; Interrupt routine called every 1/80 s
  149.  
  150. SHO_Play
  151.     bra.s    SHO_InterVBL
  152.  
  153.  
  154.  
  155. *-----------------------------------------------------------------------*
  156. ;
  157. ; Returns min and max sub song
  158.  
  159. SHO_SubSongRange
  160.     moveq    #1,d0            ; min
  161.     moveq    #7,d1            ; max
  162.  
  163.     rts
  164.  
  165.  
  166. *-----------------------------------------------------------------------*
  167. ;
  168. ; Set Volume
  169.  
  170. SHO_Volume
  171.     move.w    dtg_SndLBal(a5),d0    ; Vol Left
  172.     mulu    dtg_SndVol(a5),d0    ; Vol Max
  173.     lsr.w    #6,d0
  174.     move.w    d0,SHO_MasterVolA    ; final Vol Left
  175.     move.w    d0,SHO_MasterVolD
  176.  
  177.     move.w    dtg_SndRBal(a5),d0
  178.     mulu    dtg_SndVol(a5),d0
  179.     lsr.w    #6,d0
  180.     move.w    d0,SHO_MasterVolB
  181.     move.w    d0,SHO_MasterVolC
  182.  
  183.     rts
  184.  
  185.  
  186. *-----------------------------------------------------------------------*
  187. ;
  188. ; Set DMA Voices
  189.  
  190. SHO_SetVoices
  191.     or.w    #$8000,d0
  192.     move.w    d0,SHO_DMA_EP    ; bit=1 <=> voice is ON
  193.  
  194.     rts
  195.  
  196.  
  197. *-----------------------------------------------------------------------*
  198. ;
  199. ; Returns address of the UPS structure to EaglePlayer
  200.  
  201. SHO_StructInit
  202.     lea    SHO_StructAnalyzer(pc),a0
  203.  
  204.     rts
  205.  
  206.  
  207.  
  208. *-----------------------------------------------------------------------*
  209.  
  210.  
  211.     ELSEIF                ; TESTVERSION
  212.  
  213.  
  214. ;-------
  215. ; Small code to test the player under a debugger
  216.  
  217.  
  218.     moveq    #1,d0
  219.     bsr    SHO_InitSong
  220.  
  221.     move.l    $6c.w,Jmp+2
  222.     move.l    #Vbl,$6c.w
  223.     rts
  224.  
  225.  
  226. End
  227. ;;    bsr    StopSong
  228.     move.l    Jmp+2(pc),$6c.w
  229.     move.w    #$f,$dff096
  230.     rts
  231.  
  232.  
  233. Vbl
  234.     btst    #5,$dff01f
  235.     beq.s    Jmp
  236.  
  237. .wa    cmp.b    #70,$dff006
  238.     blt.s    .wa
  239.  
  240.     move.w    #$f00,$dff180
  241.  
  242.     movem.l    d0-a6,-(a7)
  243.     bsr    SHO_InterVBL
  244.     movem.l    (a7)+,d0-a6
  245.  
  246.     move.w    #$345,$dff180
  247.  
  248. Jmp    jmp    0.l
  249.  
  250.  
  251.  
  252.  
  253. SHO_StructAnalyzer            ; transmis à EaglePlayer pour gérer
  254.     ds.l    UPS_SizeOF        ; les analyzers
  255.  
  256.  
  257.     ENDC
  258.  
  259.  
  260.  
  261. ;------------------------------------------------------------------------
  262. ; Données pour EaglePlayer / Delitracker
  263.  
  264. SHO_DMA_EP    dc.w    %1111+$8000    ; voix actives depuis EaglePlayer
  265.  
  266. SHO_MasterVolA    dc.w    64        ; 0 .. 64
  267. SHO_MasterVolB    dc.w    64
  268. SHO_MasterVolC    dc.w    64
  269. SHO_MasterVolD    dc.w    64
  270.  
  271. SHO_StructA    dc.l    SHO_StructAnalyzer
  272. SHO_StructB    dc.l    SHO_StructAnalyzer+UPS_Modulo
  273. SHO_StructC    dc.l    SHO_StructAnalyzer+UPS_Modulo*2
  274. SHO_StructD    dc.l    SHO_StructAnalyzer+UPS_Modulo*3
  275.  
  276. SHO_OldPer1    dc.w    -1
  277. SHO_OldPer2    dc.w    -1
  278. SHO_OldPer3    dc.w    -1
  279. SHO_OldPer4    dc.w    -1
  280.  
  281.  
  282.  
  283. ;-----------------------------------------------------------------------
  284. ; Super Hang On Loader Music
  285. ; Original music by The Source (located in $6000) in 1988.
  286. ; Relocated on 29/03/97 by Mr.STYCKX
  287. ;
  288. ; SHO_InitSong : D0 = 1..7
  289. ; SHO_InterVBL : called every VBL
  290. ;
  291.  
  292.  
  293.  
  294. ;-----------------------------------------------------------------------
  295. ; Init la subsong D0
  296.  
  297. SHO_InitSong
  298.     subq.w    #1,d0            ; de 0 à 7
  299.     lsl.w    #3,d0            ; adresse 2 mots longs
  300.     lea    SongsAdr(pc),a0
  301.     move.l    4(a0,d0.w),D1        ; music speed
  302.     move.l    (a0,d0.w),D0        ; music data
  303.     bra    InitSong
  304.     
  305.  
  306.  
  307. ;-----------------------------------------------------------------------
  308. ; Routine appelée à chaque VBL
  309.  
  310. SHO_InterVBL
  311.     movem.l    D0/A0,-(SP)
  312.  
  313.     lea    SHO_StructAnalyzer(pc),a0
  314.     move.w    #-1,UPS_Enabled(a0)
  315.     move.w    #UPSB_Adr!UPSB_Len!UPSB_Per!UPSB_Vol!UPSB_DMACon,UPS_Flags(a0)
  316.  
  317.     move.w    UPS_Voice1Per(a0),SHO_OldPer1
  318.     move.w    UPS_Voice2Per(a0),SHO_OldPer2
  319.     move.w    UPS_Voice3Per(a0),SHO_OldPer3
  320.     move.w    UPS_Voice4Per(a0),SHO_OldPer4
  321.  
  322.     clr.w    UPS_Voice1Per(a0)
  323.     clr.w    UPS_Voice2Per(a0)
  324.     clr.w    UPS_Voice3Per(a0)
  325.     clr.w    UPS_Voice4Per(a0)
  326.  
  327.     move.w    SHO_DMA_EP(pc),d0
  328.     move.w    d0,UPS_DMACon(a0)
  329.     not.w    d0
  330.     and.w    #$f,d0
  331.     move.w    d0,$dff096        ; stop voices from EP
  332.  
  333.     bsr    PlaySong
  334.  
  335.     ; La replay de Nebulus remet la période à chaque VBL,ce qui perturbe
  336.     ; les analyzers. On ne transmet donc une période que si elle est
  337.     ; différente de la VBL précédente.
  338.  
  339.     lea    SHO_StructAnalyzer(pc),a0
  340.     move.w    UPS_Voice1Per(a0),d0
  341.     cmp.w    SHO_OldPer1(pc),d0    ; nouvelle fréquence
  342.     bne.s    .2            ; oui
  343.     clr.w    UPS_Voice1Per(a0)    ; non, on remet a 0
  344.  
  345. .2    move.w    UPS_Voice2Per(a0),d0
  346.     cmp.w    SHO_OldPer2(pc),d0
  347.     bne.s    .3
  348.     clr.w    UPS_Voice2Per(a0)
  349.  
  350. .3    move.w    UPS_Voice3Per(a0),d0
  351.     cmp.w    SHO_OldPer3(pc),d0
  352.     bne.s    .4
  353.     clr.w    UPS_Voice3Per(a0)
  354.  
  355. .4    move.w    UPS_Voice4Per(a0),d0
  356.     cmp.w    SHO_OldPer4(pc),d0
  357.     bne.s    .0
  358.     clr.w    UPS_Voice4Per(a0)
  359. .0
  360.  
  361.     clr.w    UPS_Enabled(a0)
  362.  
  363.     movem.l    (SP)+,D0/A0
  364.     rts
  365.  
  366.  
  367.  
  368. ;-----------------------------------------------------------------------
  369.  
  370.  
  371. ;-----------------------------------------------
  372. ;
  373. InitSong
  374.  
  375. lbC000000    bsr    lbC000152
  376.     move.l    D0,lA118
  377.     move.l    D1,lA11C
  378.     tst.l    D0
  379.     beq.s    lbC00005E
  380.     movem.l    D0/D1/A0,-(SP)
  381.     move.l    D1,lA104
  382.     move.l    D0,D1
  383.     move.l    D0,A0
  384.     add.l    #12,D1
  385.     move.l    D1,lA108
  386.     move.l    D0,D1
  387.     add.l    (A0),D1
  388.     move.l    D1,lA10C
  389.     move.l    D0,D1
  390.     add.l    4(A0),D1
  391.     move.l    D1,lA110
  392.     add.l    8(A0),D0
  393.     move.l    D0,lA114
  394.     clr.l    lA100
  395.     st    lA120
  396.     movem.l    (SP)+,D0/D1/A0
  397. lbC00005E    rts
  398.  
  399.  
  400. lbC00008A
  401.     clr.w    lA120
  402.     move.w    #15,$DFF096
  403. ;;    move.w    #$780,$DFF09A
  404.     rts
  405.  
  406.  
  407. ;-----------------------------------------------
  408. ;
  409. PlaySong
  410.  
  411.     tst.w    lA120
  412.     beq.s    lbC0000C2
  413.     movem.l    D0-D7/A0-A6,-(SP)
  414.     bsr    lbC00017A
  415.     bsr.s    lbC00010C
  416.     bsr.s    lbC0000C4
  417.     move.l    lA104,D0
  418.     add.l    D0,lA100
  419.  
  420.     movem.l    (SP)+,D0-D7/A0-A6
  421. lbC0000C2    rts
  422.  
  423. ;-------
  424.  
  425. lbC0000C4
  426.     move.l    SHO_StructC(pc),a5
  427.     move.w    SHO_MasterVolC(pc),d7
  428.  
  429.     move.l    lA110,A0
  430.     move.w    lA100,D0
  431.     cmp.w    (A0),D0
  432.     bcs.s    lbC0000C2
  433.     addq.w    #2,A0
  434.     move.w    (A0)+,D0
  435.     move.l    A0,lA110
  436.     tst.w    D0
  437.     bmi    lbC00016A
  438.     bne.s    lbC0000EC
  439.     moveq    #2,D0
  440.     bra    lbC0001C8
  441.  
  442. lbC0000EC    lea    lA062(pc),A1
  443.     and.w    #$7F,D0
  444.     sub.w    #$5A,D0
  445.     add.w    D0,D0
  446.     move.w    0(A1,D0.W),D3
  447.     moveq    #2,D0
  448.     moveq    #4,D1
  449.     moveq    #-1,D2
  450.     moveq    #$40,D4
  451.     bra    lbC0001F6
  452.  
  453. ;-------
  454.  
  455. lbC00010C
  456.     move.l    SHO_StructB(pc),a5
  457.     move.w    SHO_MasterVolB(pc),d7
  458.  
  459.     move.l    lA10C,A0
  460.     move.w    lA100,D0
  461.     cmp.w    (A0),D0
  462.     bcs    lbC00019A
  463.     addq.w    #2,A0
  464.     move.w    (A0)+,D0
  465.     move.l    A0,lA10C
  466.     tst.w    D0
  467.     bmi.s    lbC00016A
  468.     bne.s    lbC000132
  469.     moveq    #1,D0
  470.     bra    lbC0001C8
  471.  
  472. lbC000132    lea    lA04A(pc),A1
  473.     and.w    #$7F,D0
  474.     sub.w    #$32,D0
  475.     add.w    D0,D0
  476.     move.w    0(A1,D0.W),D3
  477.     moveq    #1,D0
  478.     moveq    #3,D1
  479.     moveq    #2,D2
  480.     moveq    #$40,D4
  481.     bra    lbC0001F6
  482.  
  483. lbC000152
  484.     clr.w    lA120
  485. ;;    move.w    #$380,$DFF09A
  486.     move.w    #7+8,$DFF096
  487.     rts
  488.  
  489. lbC00016A
  490.     IFEQ    SHO_TEST-0
  491.     move.l    SHO_SongEnd(pc),a0
  492.     jsr    (a0)
  493.     ENDC
  494.     move.l    lA118,D0
  495.     move.l    lA11C,D1
  496.     bra    lbC000000
  497.  
  498. ;-------
  499.  
  500. lbC00017A
  501.     move.l    SHO_StructA(pc),a5
  502.     move.w    SHO_MasterVolA(pc),d7
  503.  
  504.     move.l    lA108,A0
  505.     move.w    lA100,D0
  506.     cmp.w    (A0),D0
  507.     bcs.s    lbC00019A
  508.     addq.w    #2,A0
  509.     move.w    (A0)+,D0
  510.     move.l    A0,lA108
  511.     tst.w    D0
  512.     bmi.s    lbC00016A
  513.     bne.s    lbC00019C
  514. lbC00019A    rts
  515.  
  516. lbC00019C    cmp.b    #$24,D0
  517.     bne.s    lbC0001B2
  518.     moveq    #0,D0
  519.     moveq    #1,D1
  520.     moveq    #2,D2
  521.     move.w    #$1BF,D3
  522.     moveq    #$40,D4
  523.     bra.s    lbC0001F6
  524.  
  525. lbC0001B2    cmp.b    #$28,D0
  526.     bne.s    lbC00019A
  527.     moveq    #0,D0
  528.     moveq    #2,D1
  529.     moveq    #2,D2
  530.     move.w    #$1BF,D3
  531.     moveq    #$40,D4
  532.     bra.s    lbC0001F6
  533.  
  534. lbC0001C8    movem.l    D0/A0/A1,-(SP)
  535.     bsr.s    lbC0001D4
  536.     movem.l    (SP)+,D0/A0/A1
  537.     rts
  538.  
  539. lbC0001D4    and.w    #3,D0
  540.     lea    lA088,A0
  541.     lsl.w    #2,D0
  542.     lea    0(A0,D0.W),A0
  543.     move.w    $12(A0),$DFF096        ; DMA OFF
  544. ;;    move.w    $10(A0),$DFF09A        ; INTENA OFF
  545.     rts
  546.  
  547. lbC0001F6    cmp.b    #0,D0
  548.     bne.s    lbC00020E
  549.     tst.b    l6D68
  550.     beq.s    lbC00020E
  551.     tst.b    l6D40
  552.     beq.s    lbC00020E
  553.     rts
  554.  
  555. lbC00020E    tst.w    D1
  556.     beq.s    lbC0001C8
  557.     cmp.w    #9,D1
  558.     bhi.s    lbC0001C8
  559.     movem.l    D0-D7/A0-A2,-(SP)
  560.     cmp.w    #$7C,D3
  561.     bcc.s    lbC000228
  562.     move.w    #$7C,D3
  563. lbC000228    cmp.w    #$41,D4
  564.     bcs.s    lbC000232
  565.     move.w    #$40,D4
  566. lbC000232    lea    lA0B0,A2
  567.     lsl.w    #3,D1
  568.     lea    0(A2,D1.W),A2
  569.     bsr.s    lbC0001D4
  570.     move.l    (A0),A1
  571.     move.l    (a2),UPS_Voice1Adr(a5)
  572.     move.l    (A2)+,(A1)
  573.     move.w    (a2),UPS_Voice1Len(a5)
  574.     move.w    (A2)+,4(A1)
  575.     move.w    D3,6(A1)
  576.     move.w    d3,UPS_Voice1Per(a5)
  577.     move.w    d4,UPS_Voice1Vol(a5)
  578.     mulu    d7,d4            ; mastervol
  579.     lsr.w    #6,d4
  580.     move.w    D4,8(A1)
  581.     clr.w    UPS_Voice1Repeat(a5)    ; repeat ON
  582.  
  583. ;    move.w    #$C8,D0
  584. ;lbC000254    dbra    D0,lbC000254
  585.     moveq    #5-1,d0
  586. wa1    move.b    $dff006,d1
  587. wa12    cmp.b    $dff006,d1
  588.     beq.s    wa12
  589.     dbf    d0,wa1
  590.  
  591.     move.w    $22(A0),d0        ; DMA ON
  592.     and.w    SHO_DMA_EP(pc),d0
  593.     move.w    d0,$DFF096
  594.     tst.w    D2
  595.     bmi.s    lbC000278
  596.  
  597. ;    move.w    #$C8,D0
  598. ;lbC000268    dbra    D0,lbC000268
  599.     moveq    #5-1,d0
  600. wa2    move.b    $dff006,d1
  601. wa22    cmp.b    $dff006,d1
  602.     beq.s    wa22
  603.     dbf    d0,wa2
  604.  
  605.     move.l    #lA078,(A1)        ; empty sample
  606.     move.w    #8,4(A1)
  607. ;;    st    UPS_Voice1Repeat(a5)    ; repeat OFF
  608.  
  609. lbC000278    movem.l    (SP)+,D0-D7/A0-A2
  610.     rts
  611.  
  612.  
  613. ;-------
  614.  
  615.  
  616.     dc.w    $1BF8,$1A65,$18EA,$1784,$1632,$14F3,$13C6,$12AA
  617.     dc.w    $119E,$10A1,$FB2,$ED0,$DFC,$D33,$C75,$BC2,$B19
  618.     dc.w    $A7A,$9E3,$955,$8CF,$850,$7D9,$768,$6FE,$699,$63B
  619.     dc.w    $5E1,$58D,$53D,$4F2,$4AB,$467,$428,$3EC,$3B4,$37F
  620.     dc.w    $34D,$31D,$2F1,$2C6,$29E,$279,$255,$234,$214,$1F6
  621.     dc.w    $1DA
  622. lA04A    dc.w    $1BF,$1A6,$18F,$178,$163,$14F,$13C,$12B,$11A
  623.     dc.w    $10A,$FB,$ED
  624. lA062    dc.w    $E0,$D3,$C7,$BC,$B2,$A8,$9E,$95,$8D,$85,$7E
  625.  
  626.  
  627. lA088    dc.l    $DFF0A0,$DFF0B0,$DFF0C0,$DFF0D0
  628.     dc.l    $800001,$1000002,$2000004,$4000008
  629.     dc.l    $80808001,$81008002,$82008004,$84008008
  630.  
  631.  
  632. SAMPLE_START    =    $A122
  633.  
  634. SampleAdr
  635.     dc.l    $A122-SAMPLE_START+SampleData,$EB0000
  636.     dc.l    $A2F8-SAMPLE_START+SampleData,$3830000
  637.     dc.l    $A9FE-SAMPLE_START+SampleData,$3E70000
  638.     dc.l    $B1CC-SAMPLE_START+SampleData,$9C30000
  639.     dc.l    $C55E-SAMPLE_START+SampleData,$40000
  640.     dc.l    $C566-SAMPLE_START+SampleData,$1F40000
  641.     dc.l    $C94E-SAMPLE_START+SampleData,$5670000    ; unused
  642.     dc.l    $D41C-SAMPLE_START+SampleData,$55F0000    ;   "
  643.     dc.l    $DEDA-SAMPLE_START+SampleData,$57F0000    ;   "
  644.  
  645. lA0B0     =        SampleAdr-8
  646.  
  647.  
  648. lA100        dc.l    0
  649. lA104        dc.l    0
  650. lA108        dc.l    0
  651. lA10C        dc.l    0
  652. lA110        dc.l    0
  653. lA114        dc.l    0
  654. lA118        dc.l    0
  655. lA11C        dc.l    0
  656. lA120        dcb.b    2,0
  657.  
  658. l6D40        dc.b    0
  659. l6D68        dc.b    0
  660.  
  661.  
  662. ;-------
  663.  
  664.  
  665. SHO_SongEnd    dc.l    0        ; SongEnd rout adr
  666.  
  667.  
  668. SongsAdr
  669.     dc.l    MusicData,$10000
  670.     dc.l    MusicData+$f400-$e9d8,$13000
  671.     dc.l    MusicData+$fca8-$e9d8,$12000
  672.     dc.l    Music1,$13000
  673.     dc.l    Music2,$13000
  674.     dc.l    Music3,$13000
  675.     dc.l    Music4,$13000
  676.  
  677. MusicData                    ; $e9d8 .. $
  678.     incbin    b:SuperHangOn/SHO_Main.mus
  679.  
  680. Music1    incbin    b:SuperHangOn/SHO_Tune1.mus
  681. Music2    incbin    b:SuperHangOn/SHO_Tune2.mus
  682. Music3    incbin    b:SuperHangOn/SHO_Tune3.mus
  683. Music4    incbin    b:SuperHangOn/SHO_Tune4.mus
  684.  
  685.  
  686. ;-------
  687.  
  688.     section    SHO_smp,data_c
  689.  
  690. lA078    dcb.l    4,0                ; EmptySample
  691.  
  692. SampleData                    ; $a122 .. $c566
  693.     incbin    b:SuperHangOn/SHO_Main.smp
  694.  
  695. ;-------
  696.  
  697.     end
  698.